﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using System.Data;
using System.Data.SqlClient;
using System.Configuration;
using Gra.Seguros.Servicio.Be;

namespace Gra.Seguros.Servicio.Dalc
{
    public class PolizaDalc: IDisposable
    {

        #region "Procedimientos Consultas"

        public List<PolizaBe> listar(int _cPoliza, string _fCreacionInicio, string _fCreacionFin, int _cCliente, int _cTipoSeguro, int _cRamo, int _cEjecutivo, int _cEstado)
        {
            try
            {
                List<PolizaBe> lst = new List<PolizaBe>();
                using (SqlCommand oCommand = new SqlCommand("uspListarCabeceraPoliza", oCn))
                {
                    oCommand.CommandType = CommandType.StoredProcedure;
                    oCommand.Parameters.Add("@cPoliza", SqlDbType.Int).Value = _cPoliza;
                    oCommand.Parameters.Add("@fCreacionInicio", SqlDbType.VarChar, 8).Value = _fCreacionInicio;
                    oCommand.Parameters.Add("@fCreacionFin", SqlDbType.VarChar, 8).Value = _fCreacionFin;
                    oCommand.Parameters.Add("@cCliente", SqlDbType.Int).Value = _cCliente;
                    oCommand.Parameters.Add("@cTipoSeguro", SqlDbType.Int).Value = _cTipoSeguro;
                    oCommand.Parameters.Add("@cRamo", SqlDbType.Int).Value = _cRamo;
                    oCommand.Parameters.Add("@cEjecutivo", SqlDbType.Int).Value = _cEjecutivo;
                    oCommand.Parameters.Add("@cEstadoPoliza", SqlDbType.Int).Value = _cEstado;
                    using (SqlDataReader drListado = oCommand.ExecuteReader(CommandBehavior.SingleResult | CommandBehavior.CloseConnection))
                    {
                        if (drListado.HasRows)
                        {
                            while ((drListado.Read()))
                            {
                                PolizaBe obj = new PolizaBe();
                                obj.cPoliza = drListado.GetInt32(drListado.GetOrdinal("cPoliza"));
                                obj.cPolizaSBS = drListado.GetString(drListado.GetOrdinal("cPolizaSBS"));
                                obj.fEmision = drListado.GetString(drListado.GetOrdinal("fEmision"));
                                obj.cRecepcionDocumento = drListado.GetInt32(drListado.GetOrdinal("cRecepcionDocumento"));
                                obj.oCliente = new ClienteBe();
                                obj.oCliente.cCliente = drListado.GetInt32(drListado.GetOrdinal("cCliente"));
                                obj.oCliente.dNomCliente = drListado.GetString(drListado.GetOrdinal("dNomCliente"));
                                obj.oCliente.dApeRazonCliente = drListado.GetString(drListado.GetOrdinal("dApeRazonCliente"));
                                obj.oEjecutivo = new EjecutivoBe();
                                obj.oEjecutivo.cEjecutivo = drListado.GetInt32(drListado.GetOrdinal("cEjecutivo"));
                                obj.oEjecutivo.dNombre = drListado.GetString(drListado.GetOrdinal("dNombre"));
                                obj.oEjecutivo.dApellido = drListado.GetString(drListado.GetOrdinal("dApellido"));
                                obj.oRamo = new RamoBe();
                                obj.oRamo.cRamo = drListado.GetInt32(drListado.GetOrdinal("cRamo"));
                                obj.oRamo.dRamo = drListado.GetString(drListado.GetOrdinal("dRamo"));
                                obj.oEstadoPoliza= new EstadoPolizaBe();
                                obj.oEstadoPoliza.cEstadoPoliza= drListado.GetInt32(drListado.GetOrdinal("cEstadoPoliza"));
                                obj.oEstadoPoliza.dEstadoPoliza = drListado.GetString(drListado.GetOrdinal("dEstadoPoliza"));
                                lst.Add(obj);
                            }
                        }
                    }
                }

                return lst;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        public List<PolizaBe> listarPoliza(int _cPoliza)
        {
            try
            {
                List<PolizaBe> lst = new List<PolizaBe>();
                using (SqlCommand oCommand = new SqlCommand("uspListarDatosCabeceraPoliza", oCn))
                {
                    oCommand.CommandType = CommandType.StoredProcedure;
                    oCommand.Parameters.Add("@cPoliza", SqlDbType.Int).Value = _cPoliza;
                    using (SqlDataReader drListado = oCommand.ExecuteReader(CommandBehavior.SingleResult | CommandBehavior.CloseConnection))
                    {
                        if (drListado.HasRows)
                        {
                            while ((drListado.Read()))
                            {
                                PolizaBe obj = new PolizaBe();
                                obj.cPoliza = drListado.GetInt32(drListado.GetOrdinal("cPoliza"));
                                obj.cPolizaSBS = drListado.GetString(drListado.GetOrdinal("cPolizaSBS"));
                                obj.fEmision = drListado.GetString(drListado.GetOrdinal("fEmision"));
                                obj.fInicioVigencia = drListado.GetString(drListado.GetOrdinal("fInicioVigencia"));
                                obj.fFinVigencia = drListado.GetString(drListado.GetOrdinal("fFinVigencia"));
                                obj.oMoneda = new MonedaBe();
                                obj.oMoneda.cMoneda= drListado.GetInt16(drListado.GetOrdinal("cMoneda"));
                                obj.nMontoAsegurado = drListado.GetDecimal(drListado.GetOrdinal("nMontoAsegurado"));
                                obj.nComision = drListado.GetDecimal(drListado.GetOrdinal("nComision"));
                                obj.nComisionVen = drListado.GetDecimal(drListado.GetOrdinal("nComisionVendedor"));
                                obj.nPrimaNeta = drListado.GetDecimal(drListado.GetOrdinal("nPrima"));
                                obj.nDerEmis1 = drListado.GetDecimal(drListado.GetOrdinal("nDerEmis1"));
                                obj.nTotal = drListado.GetDecimal(drListado.GetOrdinal("nTotal"));
                                obj.nCuota = drListado.GetInt16(drListado.GetOrdinal("nCuota"));
                                obj.oCliente = new ClienteBe();
                                obj.oCliente.cCliente = drListado.GetInt32(drListado.GetOrdinal("cCliente"));
                                obj.oCliente.nNroDocumento = drListado.GetString(drListado.GetOrdinal("nNroDocumento"));
                                obj.oCliente.TipoDocumento = new TipoDocumentoBe();
                                obj.oCliente.TipoDocumento.cTipoDocumento = drListado.GetString(drListado.GetOrdinal("cTipoDocumento"));
                                obj.oComisionCia = new PCTComisionBe();
                                obj.oComisionCia.cComision = drListado.GetInt32(drListado.GetOrdinal("cComisionCia"));
                                obj.oComisionVen = new PCTComisionVenBe();
                                obj.oComisionVen.cComisionVen = drListado.GetInt32(drListado.GetOrdinal("cComisionVen"));
                                obj.oComisionVen.oVendedor = new VendedorBe();
                                obj.oComisionVen.oVendedor.cVendedor = drListado.GetInt32(drListado.GetOrdinal("cVendedor"));
                                obj.oCotizacion = new CotizacionBe();
                                obj.oCotizacion.cCotizacion = drListado.GetInt32(drListado.GetOrdinal("cCotizacion"));
                                obj.oAseguradora = new AseguradoraBe();
                                obj.oAseguradora.cAseguradora = drListado.GetInt32(drListado.GetOrdinal("cAseguradora"));
                                obj.oEjecutivo = new EjecutivoBe();
                                obj.oEjecutivo.cEjecutivo = drListado.GetInt32(drListado.GetOrdinal("cEjecutivo"));
                                obj.oRamo = new RamoBe();
                                obj.oRamo.cRamo = drListado.GetInt32(drListado.GetOrdinal("cRamo"));
                                obj.oRamo.oTipoSeguro = new TipoSeguroBe();
                                obj.oRamo.oTipoSeguro.cTipoSeguro = drListado.GetInt32(drListado.GetOrdinal("cTipoSeguro"));
                                obj.oFormaPago = new FormaPagoBe();
                                obj.oFormaPago.cFormaPago= drListado.GetInt32(drListado.GetOrdinal("cFormaPago"));
                                obj.oFormaPago.oTipoPago = new TipoPagoBe();
                                obj.oFormaPago.oTipoPago.cTipoPago = drListado.GetInt32(drListado.GetOrdinal("cTipoPago"));
                                obj.dUCreacion = drListado.GetString(drListado.GetOrdinal("dUCreacion"));                                
                                obj.oEstadoPoliza = new EstadoPolizaBe();
                                obj.oEstadoPoliza.cEstadoPoliza = drListado.GetInt32(drListado.GetOrdinal("cEstadoPoliza"));
                                obj.oRenovacion = new RenovacionBe();
                                obj.oRenovacion.cRenovacion = drListado.GetInt32(drListado.GetOrdinal("cRenovacion"));
                                obj.cRecepcionDocumento = drListado.GetInt32(drListado.GetOrdinal("cRecepcionDocumento"));  
                                obj.nimpcuota=drListado.GetDecimal(drListado.GetOrdinal("nimpcuota"));
                                obj.nCuotaInicial=drListado.GetDecimal(drListado.GetOrdinal("nCuotaInicial"));
                                obj.fvencimiento=drListado.GetString(drListado.GetOrdinal("fVencimiento"));                           
                                lst.Add(obj);
                            }
                        }
                    }
                }

                return lst;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        public List<PolizaBe> listarPolizaxCliente(int _cCliente)
        {
            try
            {
                List<PolizaBe> lst = new List<PolizaBe>();
                using (SqlCommand oCommand = new SqlCommand("uspListarClienteCabeceraPoliza", oCn))
                {
                    oCommand.CommandType = CommandType.StoredProcedure;
                    oCommand.Parameters.Add("@cCliente", SqlDbType.Int).Value = _cCliente;
                    using (SqlDataReader drListado = oCommand.ExecuteReader(CommandBehavior.SingleResult | CommandBehavior.CloseConnection))
                    {
                        if (drListado.HasRows)
                        {
                            while ((drListado.Read()))
                            {
                                PolizaBe obj = new PolizaBe();
                                obj.cPoliza = drListado.GetInt32(drListado.GetOrdinal("cPoliza"));
                                obj.nroPoliza = drListado.GetString(drListado.GetOrdinal("nroPoliza"));
                                obj.cPolizaSBS = drListado.GetString(drListado.GetOrdinal("cPolizaSBS"));
                                obj.oAseguradora = new AseguradoraBe();
                                obj.oAseguradora.dAseguradora = drListado.GetString(drListado.GetOrdinal("dAseguradora"));
                                obj.fEmision = drListado.GetString(drListado.GetOrdinal("fEmision"));
                                obj.fInicioVigencia = drListado.GetString(drListado.GetOrdinal("fInicioVigencia"));
                                obj.fFinVigencia = drListado.GetString(drListado.GetOrdinal("fFinVigencia"));
                                obj.nPrimaNeta = drListado.GetDecimal(drListado.GetOrdinal("nPrima"));
                                obj.oEstadoPoliza = new EstadoPolizaBe();
                                obj.oEstadoPoliza.dEstadoPoliza = drListado.GetString(drListado.GetOrdinal("dEstadoPoliza"));                                
                                lst.Add(obj);
                            }
                        }
                    }
                }

                return lst;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        public List<PolizaBe> listarPolizaCronogramaxCliente(int _cCliente,int _cPoliza)
        {
            try
            {
                List<PolizaBe> lst = new List<PolizaBe>();
                using (SqlCommand oCommand = new SqlCommand("uspListarClientePolizaCronograma", oCn))
                {
                    oCommand.CommandType = CommandType.StoredProcedure;
                    oCommand.Parameters.Add("@cCliente", SqlDbType.Int).Value = _cCliente;
                    oCommand.Parameters.Add("@cPoliza", SqlDbType.Int).Value = _cPoliza;
                    using (SqlDataReader drListado = oCommand.ExecuteReader(CommandBehavior.SingleResult | CommandBehavior.CloseConnection))
                    {
                        if (drListado.HasRows)
                        {
                            while ((drListado.Read()))
                            {
                                PolizaBe obj = new PolizaBe();
                                obj.cPoliza = drListado.GetInt32(drListado.GetOrdinal("cPoliza"));
                                obj.nroPoliza = drListado.GetString(drListado.GetOrdinal("nroPoliza"));
                                obj.fvencimiento = drListado.GetString(drListado.GetOrdinal("fVencimiento"));
                                obj.nCuota = drListado.GetInt32(drListado.GetOrdinal("nCuota"));
                                obj.nCuotaInicial = drListado.GetDecimal(drListado.GetOrdinal("nCuotaInicial"));
                                obj.nimpcuota = drListado.GetDecimal(drListado.GetOrdinal("nImporteCuota"));                              
                                obj.dEstadoPago = drListado.GetString(drListado.GetOrdinal("Estado"));
                                obj.fPago = drListado.GetString(drListado.GetOrdinal("FPago"));                             
                                lst.Add(obj);
                            }
                        }
                    }
                }

                return lst;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }



        #endregion


        #region "Procedimientos Mantenimientos"



        public string anular(string _str_Poliza)
        {
            try
            {
                string mensaje = "";
                using (SqlCommand oCommand = new SqlCommand("uspAnularPoliza", oCn))
                {
                    oCommand.CommandType = CommandType.StoredProcedure;
                    oCommand.Parameters.Add("@str_Poliza", SqlDbType.Xml).Value = _str_Poliza;
                    oCommand.ExecuteNonQuery();
                }

                mensaje = "OK";
                return mensaje;
            }
            catch (Exception ex) { throw ex; }
        }
        
        public string registrarPoliza(PolizaBe _objCab)            
        {
            string vReturn = string.Empty;
            try
            {
                using (SqlCommand oCommand = new SqlCommand("uspRegistrarPoliza", oCn))
                {
                    oCommand.CommandType = CommandType.StoredProcedure;
                    oCommand.Parameters.Add(new SqlParameter("@cPoliza", SqlDbType.Int)).Value = _objCab.nroPoliza;
                    oCommand.Parameters.Add(new SqlParameter("@cTipoDocumento", SqlDbType.VarChar, 4)).Value = _objCab.oCliente.TipoDocumento.cTipoDocumento;
                    oCommand.Parameters.Add(new SqlParameter("@nNroDocumento", SqlDbType.VarChar, 15)).Value = _objCab.oCliente.nNroDocumento;
                    oCommand.Parameters.Add(new SqlParameter("@cPolizaSBS", SqlDbType.VarChar, 30)).Value = _objCab.cPolizaSBS;                  
                    oCommand.Parameters.Add(new SqlParameter("@fEmision", SqlDbType.VarChar, 10)).Value = _objCab.fEmision;
                    oCommand.Parameters.Add(new SqlParameter("@fInicioVigencia", SqlDbType.VarChar, 10)).Value = _objCab.fInicioVigencia;
                    oCommand.Parameters.Add(new SqlParameter("@fFinVigencia", SqlDbType.VarChar, 10)).Value = _objCab.fFinVigencia;
                    oCommand.Parameters.Add(new SqlParameter("@cMoneda", SqlDbType.Int)).Value = _objCab.oMoneda.cMoneda;
                    oCommand.Parameters.Add(new SqlParameter("@nMontoAsegurado", SqlDbType.Decimal)).Value = _objCab.nMontoAsegurado;
                    oCommand.Parameters.Add(new SqlParameter("@nComision", SqlDbType.Decimal)).Value = _objCab.nComision;
                    oCommand.Parameters.Add(new SqlParameter("@nComisionVendedor", SqlDbType.Decimal)).Value = _objCab.nComisionVen;
                    oCommand.Parameters.Add(new SqlParameter("@nPrima", SqlDbType.Decimal)).Value = _objCab.nPrimaNeta;
                    oCommand.Parameters.Add(new SqlParameter("@nDerEmis1", SqlDbType.Decimal)).Value = _objCab.nDerEmis1;
                    oCommand.Parameters.Add(new SqlParameter("@nTotal", SqlDbType.Decimal)).Value = _objCab.nTotal;
                    oCommand.Parameters.Add(new SqlParameter("@cComisionCia", SqlDbType.Int)).Value = _objCab.oComisionCia.cComision;
                    oCommand.Parameters.Add(new SqlParameter("@cComisionVen", SqlDbType.Int)).Value = _objCab.oComisionVen.cComisionVen;
                    oCommand.Parameters.Add(new SqlParameter("@cCotizacion", SqlDbType.Int)).Value = _objCab.oCotizacion.cCotizacion;
                    oCommand.Parameters.Add(new SqlParameter("@cAseguradora", SqlDbType.Int)).Value = _objCab.oAseguradora.cAseguradora;
                    oCommand.Parameters.Add(new SqlParameter("@cEjecutivo", SqlDbType.Int)).Value = _objCab.oEjecutivo.cEjecutivo;
                    oCommand.Parameters.Add(new SqlParameter("@cRamo", SqlDbType.Int)).Value = _objCab.oRamo.cRamo;
                    oCommand.Parameters.Add(new SqlParameter("@cFormaPago", SqlDbType.Int)).Value = _objCab.oFormaPago.cFormaPago;
                    //oCommand.Parameters.Add(new SqlParameter("@dUsuario", SqlDbType.VarChar, 30)).Value = _objCab.dUCreacion;
                    oCommand.Parameters.Add(new SqlParameter("@cEstadoPoliza", SqlDbType.Int)).Value = _objCab.oEstadoPoliza.cEstadoPoliza;
                    oCommand.Parameters.Add(new SqlParameter("@cRenovacion", SqlDbType.Int)).Value = _objCab.oRenovacion.cRenovacion;
                    oCommand.Parameters.Add(new SqlParameter("@cRecepcionDocumento", SqlDbType.Int)).Value = _objCab.cRecepcionDocumento;
                    oCommand.Parameters.Add(new SqlParameter("@nCuota", SqlDbType.Int)).Value = _objCab.nCuota;
                    oCommand.Parameters.Add(new SqlParameter("@nCuotaInicial", SqlDbType.Decimal)).Value = _objCab.nCuotaInicial;
                    oCommand.Parameters.Add(new SqlParameter("@nimpcuota", SqlDbType.Decimal)).Value = _objCab.nimpcuota;
                    oCommand.Parameters.Add(new SqlParameter("@fvencimiento", SqlDbType.VarChar, 10)).Value = _objCab.fvencimiento;                                     
                    oCommand.Parameters.Add(new SqlParameter("@RETURN_VALUE", SqlDbType.VarChar, 500)).Direction = ParameterDirection.Output;
                    oCommand.ExecuteNonQuery();
                    vReturn = Convert.ToString(oCommand.Parameters["@RETURN_VALUE"].Value);
                }
                return vReturn;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        public string actualizarPoliza(PolizaBe _objCab)            
        {
            string vReturn = string.Empty;
            try
            {
                using (SqlCommand oCommand = new SqlCommand("uspActualizaPoliza", oCn))
                {
                    oCommand.CommandType = CommandType.StoredProcedure;
                    oCommand.Parameters.Add(new SqlParameter("@cPoliza", SqlDbType.Int)).Value = _objCab.nroPoliza;
                    oCommand.Parameters.Add(new SqlParameter("@cTipoDocumento", SqlDbType.VarChar, 4)).Value = _objCab.oCliente.TipoDocumento.cTipoDocumento;
                    oCommand.Parameters.Add(new SqlParameter("@nNroDocumento", SqlDbType.VarChar, 15)).Value = _objCab.oCliente.nNroDocumento;
                    oCommand.Parameters.Add(new SqlParameter("@cPolizaSBS", SqlDbType.VarChar, 30)).Value = _objCab.cPolizaSBS;
                    oCommand.Parameters.Add(new SqlParameter("@fEmision", SqlDbType.VarChar, 10)).Value = _objCab.fEmision;
                    oCommand.Parameters.Add(new SqlParameter("@fInicioVigencia", SqlDbType.VarChar, 10)).Value = _objCab.fInicioVigencia;
                    oCommand.Parameters.Add(new SqlParameter("@fFinVigencia", SqlDbType.VarChar, 10)).Value = _objCab.fFinVigencia;
                    oCommand.Parameters.Add(new SqlParameter("@cMoneda", SqlDbType.Int)).Value = _objCab.oMoneda.cMoneda;
                    oCommand.Parameters.Add(new SqlParameter("@nMontoAsegurado", SqlDbType.Decimal)).Value = _objCab.nMontoAsegurado;
                    oCommand.Parameters.Add(new SqlParameter("@nComision", SqlDbType.Decimal)).Value = _objCab.nComision;
                    oCommand.Parameters.Add(new SqlParameter("@nComisionVendedor", SqlDbType.Decimal)).Value = _objCab.nComisionVen;
                    oCommand.Parameters.Add(new SqlParameter("@nPrima", SqlDbType.Decimal)).Value = _objCab.nPrimaNeta;
                    oCommand.Parameters.Add(new SqlParameter("@nDerEmis1", SqlDbType.Decimal)).Value = _objCab.nDerEmis1;
                    oCommand.Parameters.Add(new SqlParameter("@nTotal", SqlDbType.Decimal)).Value = _objCab.nTotal;
                    oCommand.Parameters.Add(new SqlParameter("@cComisionCia", SqlDbType.Int)).Value = _objCab.oComisionCia.cComision;
                    oCommand.Parameters.Add(new SqlParameter("@cComisionVen", SqlDbType.Int)).Value = _objCab.oComisionVen.cComisionVen;
                    oCommand.Parameters.Add(new SqlParameter("@cCotizacion", SqlDbType.Int)).Value = _objCab.oCotizacion.cCotizacion;
                    oCommand.Parameters.Add(new SqlParameter("@cAseguradora", SqlDbType.Int)).Value = _objCab.oAseguradora.cAseguradora;
                    oCommand.Parameters.Add(new SqlParameter("@cEjecutivo", SqlDbType.Int)).Value = _objCab.oEjecutivo.cEjecutivo;
                    oCommand.Parameters.Add(new SqlParameter("@cRamo", SqlDbType.Int)).Value = _objCab.oRamo.cRamo;
                    oCommand.Parameters.Add(new SqlParameter("@cFormaPago", SqlDbType.Int)).Value = _objCab.oFormaPago.cFormaPago;
                    //oCommand.Parameters.Add(new SqlParameter("@dUCreacion", SqlDbType.VarChar, 20)).Value = _objCab.dUCreacion;
                    oCommand.Parameters.Add(new SqlParameter("@cEstadoPoliza", SqlDbType.Int)).Value = _objCab.oEstadoPoliza.cEstadoPoliza;
                    oCommand.Parameters.Add(new SqlParameter("@cRenovacion", SqlDbType.Int)).Value = _objCab.oRenovacion.cRenovacion;
                    oCommand.Parameters.Add(new SqlParameter("@cRecepcionDocumento", SqlDbType.Int)).Value = _objCab.cRecepcionDocumento;
                    oCommand.Parameters.Add(new SqlParameter("@nCuota", SqlDbType.Int)).Value = _objCab.nCuota;
                    oCommand.Parameters.Add(new SqlParameter("@nCuotaInicial", SqlDbType.Decimal)).Value = _objCab.nCuotaInicial;
                    oCommand.Parameters.Add(new SqlParameter("@nimpcuota", SqlDbType.Decimal)).Value = _objCab.nimpcuota;
                    oCommand.Parameters.Add(new SqlParameter("@fvencimiento", SqlDbType.VarChar, 10)).Value = _objCab.fvencimiento;
                    oCommand.Parameters.Add(new SqlParameter("@RETURN_VALUE", SqlDbType.VarChar, 500)).Direction = ParameterDirection.Output;
                    oCommand.ExecuteNonQuery();
                    vReturn = Convert.ToString(oCommand.Parameters["@RETURN_VALUE"].Value);
                }
                return vReturn;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        #endregion

        #region "Constructor & Disposable"
        private bool _disposed = false;
            SqlConnection oCn = null;
            public PolizaDalc()
            {
                string strConnection = ConfigurationManager.ConnectionStrings["dbSeguros"].ConnectionString;
                oCn = new SqlConnection(strConnection);
                oCn.Open();
            }

            public void Dispose()
            {
                Dispose(true);
                GC.SuppressFinalize(this);
            }
            protected virtual void Dispose(bool disposing)
            {
                if (!_disposed)
                {
                    if (disposing)
                    {
                        //Dispose managed resources here. llamar componetes de conexion u otros.                        
                        if (oCn.State != ConnectionState.Closed)
                        {
                            oCn.Close();
                        }
                        oCn.Dispose();
                    }
                    //Disposed unmanaged resources here.
                    //set the _disposed flag to prevent subsequent disposals.
                    _disposed = true;
                }
            }
            //Finalization code.
            ~PolizaDalc()
            {
                Dispose(false);
            }
        #endregion

    }

}
